import 'package:flutter/material.dart';
import 'package:lib_util/common/extentions.dart';
import 'package:lib_database/sp.dart';

class ThemeProvider extends ChangeNotifier {
  // 定义用于三种主题模式的字典
  Map themeModeList = <String, ThemeMode>{
    'dark': ThemeMode.dark, // 深色模式
    'light': ThemeMode.light, // 浅色模式
  };

  String _themeMode = 'light';

  // 返回当前的主题模式
  String get themeMode => _themeMode;

  // 构造方法
  ThemeProvider () {
    _themeMode = SP().getLocalTheme(); // 默认为跟随系统
  }

  // 返回用于显示在界面上的主题选项名称
  static String getThemeModeName(String mode, context) {
    switch (mode) {
      case 'dark':
        return 'Dark';
      default:
        return 'Light';
    }
  }

  // 返回当前的主题模式
  ThemeMode getThemeMode(String mode) {
    return themeModeList[mode];
  }

  // 深色、浅色模式设置
  ThemeData getThemeData({bool isDark = false}) {
    return ThemeData(
      textTheme: TextTheme(
        headline1: TextStyle(letterSpacing: -0.2),
        headline2: TextStyle(letterSpacing: -0.2),
        headline3: TextStyle(letterSpacing: -0.2),
        headline4: TextStyle(letterSpacing: -0.2),
        headline5: TextStyle(letterSpacing: -0.2),
        headline6: TextStyle(letterSpacing: -0.2),
        bodyText1: TextStyle(letterSpacing: -0.2),
        bodyText2: TextStyle(letterSpacing: -0.2),
      ),
      // 颜色 添加
      brightness: isDark ? Brightness.dark : Brightness.light,
      backgroundColor: isDark ? '#FFFFFF'.toColor() : '#ddddd'.toColor(),
    );
  }


  //  保存状态
  _savePreferences() async {
    await SP().setLocalTheme(_themeMode);
  }


  // 深浅色切换状态
  toggleChangeTheme(val) {
    _themeMode = val;
    _savePreferences();
    notifyListeners(); // 变更通知，在数据处理完成后执行
  }
}